package com.own.business.login.core.hook;

import com.own.constant.ConstantAccount;

/**
 * GetUserNameHook
 *
 * @author chenxueli
 * @date 2024-02-02 20:01:00
 */
public interface GetUserNameHook {

    /**
     * 根据用户获取用户名称
     *
     * @param userId 用户id
     * @return 用户名称
     */
    String getUserName(Long userId);

    /**
     * 顺序
     *
     * @return 顺序
     */
    int getUserNameOrder();

    /**
     * 生效的账号类型
     *
     * @return 账号类型 1=普通账号 2=管理员
     */
    default Integer effectiveAccountType() {
        return ConstantAccount.Type.NORMAL;
    }

}
